package com.wejoy.video.middle.station.data.domain.system;

import com.wejoy.video.middle.station.data.domain.BaseDomain;
import com.wejoy.video.middle.station.data.domain.overtime.OvertimeInfo;
import com.wejoy.video.middle.station.data.vo.evsapi.DeparmentInfoListVO;
import org.springframework.util.CollectionUtils;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 系统--用户表
 *
 * @author admin
 * @date 2021年10月19日 15:07:06
 */
public class SysUser extends BaseDomain {
    /** 用户名 */
    private String userName;
    /** 密码 */
    private String password;
    /** 手机 */
    private String phone;
    /** 姓名 */
    private String name;
    /** 邮箱 */
    private String email;
    /**
     * 用户标签
     * @see EnumUserLabelsType
     * */
    private String tag;
    private Integer evsId;
    /** 状态 */
    private Integer status;
    /**是否需要二次登陆*/
    private Integer isSecondLanding;

    /** 职位 **/
    private String jobName;

   /******VO****/

   private Integer departmentId;

   private String departmentName;
    /** 手机 */
    private String tel;
    /**
     * type
     */
    private String type;
    /**
     * 验证码
     */
    private String verifyCode;

    /**
     * 验证码token
     */
    private String verificationCodeToken;
    /**
     * 角色信息
     */
    private List<SysRole> sysRoleList;

    /**
     *
     */
    private List<DeparmentInfoListVO> departmentInfoList;
    /**
     * 用户菜单标识信息
     */
    private List<String> sysResourceIdentityList;
    /**
     * 用户菜单列表
     */
    private List<SysResource> sysResourceList;
    /**所属部门ID*/
    private List<Long> deptIdList;
    /**所管理的部门ID*/
    private List<Long> manageDeptIdList;
    /**标签集合*/
    private List<String> tagList;
    /**初始化部门数所需数据*/
    private List<List<Long>> deptTreeList;
    /**所属部门名称*/
    private List<String> deptNameList;
    /**所属部门名称前端展示*/
    private String deptName;
    /**用户所属部门所有子节点*/
    private Map<String, List<Long>> deptChildren;
    /**二次登陆验证码*/
    private String twoVerifyCode;

    /**当前验证码时间*/
    private Date verifyCodeCurrentTime;

    public Date getVerifyCodeCurrentTime() {
        return verifyCodeCurrentTime;
    }

    public void setVerifyCodeCurrentTime(Date verifyCodeCurrentTime) {
        this.verifyCodeCurrentTime = verifyCodeCurrentTime;
    }
    /**登陆TOKEN*/
    private String token;

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }
    private List<SysDeptUser> deptUserList;

    public Integer getEvsId() {
        return evsId;
    }

    public void setEvsId(Integer evsId) {
        this.evsId = evsId;
    }

    /**
     * 自己负责的部门id列表
     */
    private List<Long> dataPermissionDeptIds;

    public List<Long> getDataPermissionDeptIds() {
        return dataPermissionDeptIds;
    }

    public void setDataPermissionDeptIds(List<Long> dataPermissionDeptIds) {
        this.dataPermissionDeptIds = dataPermissionDeptIds;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getDeptName() {
        if(CollectionUtils.isEmpty(deptNameList)){
            return "";
        }
        for (String s : deptNameList) {
            deptName=deptName==null?""+s+" ":deptName+s+" ";
        }
        return deptName;
    }

    public String getVerificationCodeToken() {
        return verificationCodeToken;
    }

    public void setVerificationCodeToken(String verificationCodeToken) {
        this.verificationCodeToken = verificationCodeToken;
    }

    public Integer getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Integer departmentId) {
        this.departmentId = departmentId;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getJobName() {
        return jobName;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public List<Long> getManageDeptIdList() {
        return manageDeptIdList;
    }

    public void setManageDeptIdList(List<Long> manageDeptIdList) {
        this.manageDeptIdList = manageDeptIdList;
    }

    public List<SysDeptUser> getDeptUserList() {
        return deptUserList;
    }

    public void setDeptUserList(List<SysDeptUser> deptUserList) {
        this.deptUserList = deptUserList;
    }

    public String getTwoVerifyCode() {
        return twoVerifyCode;
    }

    public void setTwoVerifyCode(String twoVerifyCode) {
        this.twoVerifyCode = twoVerifyCode;
    }

    public Integer getIsSecondLanding() {
        return isSecondLanding;
    }

    public void setIsSecondLanding(Integer isSecondLanding) {
        this.isSecondLanding = isSecondLanding;
    }

    public List<DeparmentInfoListVO> getDepartmentInfoList() {
        return departmentInfoList;
    }

    public void setDepartmentInfoList(List<DeparmentInfoListVO> departmentInfoList) {
        this.departmentInfoList = departmentInfoList;
    }

    public Map<String, List<Long>> getDeptChildren() {
        return deptChildren;
    }

    public void setDeptChildren(Map<String, List<Long>> deptChildren) {
        this.deptChildren = deptChildren;
    }

    public List<String> getDeptNameList() {
        return deptNameList;
    }

    public void setDeptNameList(List<String> deptNameList) {
        this.deptNameList = deptNameList;
    }

    public List<String> getTagList() {
        return tagList;
    }

    public void setTagList(List<String> tagList) {
        this.tagList = tagList;
    }

    public List<List<Long>> getDeptTreeList() {
        return deptTreeList;
    }

    public void setDeptTreeList(List<List<Long>> deptTreeList) {
        this.deptTreeList = deptTreeList;
    }

    public List<Long> getDeptIdList() {
        return deptIdList;
    }

    public void setDeptIdList(List<Long> deptIdList) {
        this.deptIdList = deptIdList;
    }

    public String getVerifyCode() {
        return verifyCode;
    }

    public void setVerifyCode(String verifyCode) {
        this.verifyCode = verifyCode;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }


    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }


    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public List<SysRole> getSysRoleList() {
        return sysRoleList;
    }

    public void setSysRoleList(List<SysRole> sysRoleList) {
        this.sysRoleList = sysRoleList;
    }

    public List<String> getSysResourceIdentityList() {
        return sysResourceIdentityList;
    }

    public void setSysResourceIdentityList(List<String> sysResourceIdentityList) {
        this.sysResourceIdentityList = sysResourceIdentityList;
    }


    public List<SysResource> getSysResourceList() {
        return sysResourceList;
    }

    public void setSysResourceList(List<SysResource> sysResourceList) {
        this.sysResourceList = sysResourceList;
    }

    public String getTag() {
        return tag;
    }

    public void setTag(String tag) {
        this.tag = tag;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}
